Data Flow Branching in Mask Data Preparation

ABSTRACT

Branching of the data-flow in a mask data preparation processes is described herein. In various implementations, the output stream from a first mask data processing operation is branched. Subsequently, the branched output stream may be connected to the input stream of a first independent mask data preparation operation and a second independent mask data preparation operation. This provides that the first and the second independent mask data preparation operations may operate in parallel. Furthermore, this provides that the first and the second independent mask data preparation operations may operate upon discrete “portions” of the data processed by the first mask data preparation operation.

RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §119(e) to U.S.Provisional Patent Application No. 61/116,196 entitled “Data FlowBranching in Mask Data Preparation,” filed on Nov. 19, 2008, and namingEmile Sahouria as inventor, which application is incorporated entirelyherein by reference.

FIELD OF THE INVENTION

The invention relates to the field of integrated circuit design andmanufacturing. More particularly, various implementations of theinvention are applicable facilitating the branching of data flows inmask data preparation processes.

BACKGROUND OF THE INVENTION

Electronic circuits, such as integrated microcircuits, are used in avariety of products, from automobiles to microwaves to personalcomputers. Designing and fabricating microcircuit devices typicallyinvolves many steps, sometimes referred to as the “design flow.” Theparticular steps of a design flow often are dependent upon the type ofmicrocircuit, its complexity, the design team, and the microcircuitfabricator or foundry that will manufacture the microcircuit. Typically,software and hardware “tools” verify the design at various stages of thedesign flow by running software simulators and/or hardware emulators.These steps aid in the discovery of errors in the design, and allow thedesigners and engineers to correct or otherwise improve the design.These various microcircuits are often referred to as integrated circuits(IC's).

Several steps are common to most design flows. Initially, a design maytypically start at a high level of abstraction, by a designer creating aspecification that describes particular desired functionality. Thisspecification, typically implemented by a programming language, such as,for example the C or C++ programming language, describes at a high levelthe desired behavior of the device. Designers will then often take thisspecification for the design and create a logical design, oftenimplemented in a netlist, through a synthesis process. The logicaldesign is often referred to as a “register transfer level” (RTL)description or register transfer level design.

A register transfer level design, often implemented by a hardwaredescription language (HDL) such as Verilog, SystemVerilog, or Very Highspeed hardware description language (VHDL), describes the operation ofthe device by defining the flow of signals or the transfer of databetween various hardware components within the design. Moreparticularly, a register transfer level design describes theinterconnection and exchange of signals between hardware registers andthe logical operations that are performed on those signals.

The register transfer level design is again transformed, this time intoa gate level design. Gate level designs describe the actual physicalcomponents such as transistors, capacitors, and resistors as well as theinterconnections between these physical components. Often, gate leveldesigns are also implemented by a netlist, such as, for example, amapped netlist. Lastly, the gate-level design is taken and anothertransformation is carried out. First by place and route tools thatarrange the components described by the gate-level netlist and routeconnections between the arranged components; and second, by layout toolsthat generate a layout description having layout “shapes” that may thenused to fabricate the electronic device, through for example, an opticallithographic process.

Integrated circuit layout descriptions can be provided in many differentformats. The Graphic Data System II (GDSII) format is popular fortransferring and archiving two-dimensional graphical IC layout data.Among other features, it contains a hierarchy of structures, eachstructure containing layout elements (e.g., polygons, paths orpoly-lines, circles and textboxes). Other formats include an open sourceformat named Open Access, Milkyway by Synopsys, Inc., EDDM by MentorGraphics, Inc., and the more recent Open Artwork System InterchangeStandard (OASIS) proposed by Semiconductor Equipment and MaterialsInternational (SEMI). These various industry formats are used to definethe geometrical information in integrated circuit layout designs thatare employed to manufacture integrated circuits. Once the microcircuitdevice design is finalized, the layout portion of the design can be usedby fabrication tools to manufacturer the device using aphotolithographic process.

There are many different fabrication processes for manufacturing acircuit, but most processes include a series of steps that depositlayers of different materials on a substrate, expose specific portionsof each layer to radiation, and then etch the exposed (or non-exposed)portions of the layer away. For example, a simple semiconductor devicecomponent could be manufactured by the following steps. First, apositive type epitaxial layer is grown on a silicon substrate throughchemical vapor deposition. Next, a nitride layer is deposited over theepitaxial layer. Then specific areas of the nitride layer are exposed toradiation, and the exposed areas are etched away, leaving behind exposedareas on the epitaxial layer, (i.e., areas no longer covered by thenitride layer). The exposed areas then are subjected to a diffusion orion implantation process, causing dopants, for example phosphorus, toenter the exposed epitaxial layer and form charged wells. This processof depositing layers of material on the substrate or subsequent materiallayers, and then exposing specific patterns to radiation, etching, anddopants or other diffusion materials, is repeated a number of times,allowing the different physical layers of the circuit to bemanufactured.

Each time that a layer of material is exposed to radiation, a mask mustbe created to expose only the desired areas to the radiation, and toprotect the other areas from exposure. The mask is created from circuitlayout data. That is, the geometric elements described in layout designdata define the relative locations or areas of the circuit device thatwill be exposed to radiation through the mask. A mask or reticle writingtool is used to create the mask based upon the layout design data, afterwhich the mask can be used in a photolithographic process. The imageembodied in the layout data is often referred to as the intended ortarget image or target contours, while the image created in the mask isgenerally referred to as the mask contours. Furthermore, the imagecreated on the substrate by employing the mask in a photolithographicprocess is often referred to as the printed image or printed contours.

As designers and manufacturers continue to increase the number ofcircuit components in a given area and/or shrink the size of circuitcomponents, the shapes reproduced on the substrate become smaller andare placed closer together. This reduction in feature size increases thedifficulty of faithfully reproducing the image intended by the layoutdesign onto the substrate. A principal reason for declining yields isthat as feature sizes shrink, the dominant cause of defects change. Atlarger process technologies, yield limitation is dominated by randomdefects. Despite the best clean room efforts, particles still find a wayto land on chips or masks, causing shorts or opens. In smaller processtechnologies, for example the nanometer process technology, the dominantsource of yield loss is pattern-dependent effects. These defects are aresult of the design's features being smaller than the wavelength oflight. As a result, the physical effects of light at these smallerfeature sizes must be accounted for.

Various common techniques exist for mitigating these pattern dependanteffects. For example, optical process correction (OPC), phase shiftmasks (PSM) or other resolution enhancement techniques (RET) arecommonly employed to prepare a physical layout designs formanufacturing. Additionally, physical verification techniques thatassist in accounting for issues such as planerization and antennaeffects are also employed on physical layout designs. Although theseextensive modifications to the physical layout design resulted in alayout design that was unrecognizable by the designer, the resultingmanufactured circuit matched the designer's intent.

These resolution enhancement techniques, including mask datapreparation, allow for the manufacture of more modern circuits. However,there is an increased computational cost involved with including theseadditional processing steps into the design flow. This negativelyeffects the time in which finalized designs that are ready for tape outcan be turned around. Historically, the design processes were viewed asserial. That is, one process was run, followed by a subsequent process,and so on until the finalized design was ready. Various prior methodshave sought to parallelize these processes. However, these prior methodsoperate on the entire data layer. More particularly, parallel operationsare not executed until the entire design is ready for the operation.

SUMMARY OF THE INVENTION

Various implementations of the present invention provide methods andapparatuses for branching the data-flow in mask data preparationprocesses. In various implementations of the invention, the outputstream from a first mask data processing operation is branched.Subsequently, the branched output stream may be connected to the inputstream of a first independent mask data preparation operation and asecond independent mask data preparation operation. This provides thatthe first and the second independent mask data preparation operationsmay operate in parallel. Furthermore, this provides that the first andthe second independent mask data preparation operations may operate upondiscrete “portions” of the data processed by the first mask datapreparation operation.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be described by way of illustrativeembodiments shown in the accompanying drawings in which like referencesdenote similar elements, and in which:

FIG. 1 shows an illustrative computing environment;

FIG. 2 illustrates a mask design;

FIG. 3 illustrates a hierarchical layout design;

FIG. 4 illustrates a method of branching data in an electronic designautomation process; and

FIG. 5 illustrates a mask data preparation tool.

DETAILED DESCRIPTION OF ILLUSTRATIVE IMPLEMENTATIONS

The operations of the disclosed implementations may be described hereinin a particular sequential order. However, it should be understood thatthis manner of description encompasses rearrangements, unless aparticular ordering is required by specific language set forth below.For example, operations described sequentially may in some cases berearranged or performed concurrently. Moreover, for the sake ofsimplicity, the illustrated flow charts and block diagrams typically donot show the various ways in which particular methods can be used inconjunction with other methods.

It should also be noted that the detailed description sometimes usesterms like “determine” to describe the disclosed methods. Such terms areoften high-level abstractions of the actual operations that areperformed. The actual operations that correspond to these terms willoften vary depending on the particular implementation, and will bereadily discernible by one of ordinary skill in the art.

Furthermore, in various implementations of the invention, a mathematicalmodel may be employed to represent an electronic device. With someimplementations, a model describing the connectivity of the device, suchas for example a netlist, is employed. Those of skill in the art willappreciate that the models, even mathematical models represent realworld device designs and real world physical devices. Accordingly,manipulation of the model, even manipulation of the model when stored ona computer readable medium, results in a different device design. Moreparticularly, manipulation of the model results in a transformation ofthe corresponding physical design and any physical device rendered ormanufactured by the device design. Additionally, those of skill in theart can appreciate that during many electronic design and verificationprocesses, the response of a devices design to various signals or inputsis simulated. This simulated response corresponds to the actual physicalresponse the device being modeled would have to these various signals orinputs.

Some of the methods described herein can be implemented by softwarestored on a computer readable storage medium, or executed on a computer.Accordingly, some of the disclosed methods may be implemented as part ofa computer implemented electronic design automation (EDA) tool. Theselected methods could be executed on a single computer or a computernetworked with another computer or computers. For clarity, only thoseaspects of the software germane to these disclosed methods aredescribed; product details well known in the art are omitted.

Illustrative Computing Environment

As the techniques of the present invention may be implemented usingsoftware instructions, the components and operation of a genericprogrammable computer system on which various implementations of theinvention may be employed is described. Accordingly, FIG. 1 shows anillustrative computing device 101. As seen in this figure, the computingdevice 101 includes a computing unit 103 having a processing unit 105and a system memory 107. The processing unit 105 may be any type ofprogrammable electronic device for executing software instructions, butwill conventionally be a microprocessor. The system memory 107 mayinclude both a read-only memory (ROM) 109 and a random access memory(RAM) 111. As will be appreciated by those of ordinary skill in the art,both the read-only memory (ROM) 109 and the random access memory (RAM)111 may store software instructions for execution by the processing unit105.

The processing unit 105 and the system memory 107 are connected, eitherdirectly or indirectly, through a bus 113 or alternate communicationstructure, to one or more peripheral devices. For example, theprocessing unit 105 or the system memory 107 may be directly orindirectly connected to one or more additional devices, such as; a fixedmemory storage device 115, for example, a magnetic disk drive; aremovable memory storage device 117, for example, a removable solidstate disk drive; an optical media device 119, for example, a digitalvideo disk drive; or a removable media device 121, for example, aremovable floppy drive. The processing unit 105 and the system memory107 also may be directly or indirectly connected to one or more inputdevices 123 and one or more output devices 125. The input devices 123may include, for example, a keyboard, a pointing device (such as amouse, touchpad, stylus, trackball, or joystick), a scanner, a camera,and a microphone. The output devices 125 may include, for example, amonitor display, a printer and speakers. With various examples of thecomputing device 101, one or more of the peripheral devices 115-125 maybe internally housed with the computing unit 103. Alternately, one ormore of the peripheral devices 115-125 may be external to the housingfor the computing unit 103 and connected to the bus 113 through, forexample, a Universal Serial Bus (USB) connection.

With some implementations, the computing unit 103 may be directly orindirectly connected to one or more network interfaces 127 forcommunicating with other devices making up a network. The networkinterface 127 translates data and control signals from the computingunit 103 into network messages according to one or more communicationprotocols, such as the transmission control protocol (TCP) and theInternet protocol (IP). Also, the interface 127 may employ any suitableconnection agent (or combination of agents) for connecting to a network,including, for example, a wireless transceiver, a modem, or an Ethernetconnection.

It should be appreciated that the computing device 101 is shown here forillustrative purposes only, and it is not intended to be limiting.Various embodiments of the invention may be implemented using one ormore computers that include the components of the computing device 101illustrated in FIG. 1, which include only a subset of the componentsillustrated in FIG. 1, or which include an alternate combination ofcomponents, including components that are not shown in FIG. 1. Forexample, various embodiments of the invention may be implemented using amulti-processor computer, a plurality of single and/or multiprocessorcomputers arranged into a network, or some combination of both.

Illustrative Mask Data

In a photolithographic process, as explained above, electromagneticradiation is transmitted through selectively transparent areas of amask. The radiation passing through these transparent areas thenirradiates desired portions of a photoresistive material on a layer ofsemiconductor substrate. The mask in turn is created from layout designdata describing the geometric features that should be manufactured onthe semiconductor substrate, by way of the photolithographic process, inorder to create the desired circuit. For example, if a transistor shouldhave a rectangular gate region, then the layout design data will includea rectangle defining that gate region. This rectangle in the layoutdesign data is then implemented in a mask for “printing” the rectangulargate region onto the substrate.

For example, FIG. 2 illustrates a mask design 201 having shapes 203defined therein. As described above, radiation passes though transparentareas of a mask, such as for example the areas defined by the shapes203, causing the shapes formed by the transparent areas to bemanufactured on a substrate. As the features embodied in the mask areprinted however, optical effects, such as diffractive effects, willprevent certain shapes or combinations of shapes defined by the maskfrom being faithfully imaged onto the substrate. For example, during anoptical lithographic process, the shapes 205 as opposed to the shapes203 may be realized on the substrate. As the mask shapes become smallerrelative to the wavelength of radiation used in the optical lithographicprocess, these distortions become more pronounced.

As a result of this, a mask design is often pre-processed, wherein theshapes are modified such that the resulting printed image will moreclosely match the intended or target image. This process is oftenreferred to as mask data preparation. During mask data preparation, itis often desirable to pre-process or modify selected areas of a maskindividually. Accordingly, mask data may be flattened. FIG. 3illustrates a mask design 301, having been partitioned into sections303. Furthermore, the sections 303 may be flattened into “cells,”meaning a hierarchy of like sections. Hierarchical layout processingtechniques, including mask data preparation, are further discussed inU.S. patent application Ser. No. 10/404,907, entitled “HierarchicalEvaluation of Cells,” granted on Jul. 12, 2005 to Kobi Kresh et al.,which patent is incorporated entirely herein by reference.

Data-Flow Branching for Mask Data Preparation

FIG. 4 illustrates a method 401 of data-flow branching in an electronicdesign automation process. As can be seen from this figure, the method401 includes an operation 403 for receiving an output (i.e. the firstelectronic design automation process output 405) from a first electronicdesign automation process. Subsequently, the method 401 includes anoperation 407 for directing the first electronic design automationprocess output 405 to a first independent electronic design automationprocess 409 and a second independent electronic design automationprocess 411. With various implementations, the first independentelectronic design automation process 409 is a mask correctionverification process and the second independent electronic designautomation process 411 is a mask design fracturing process.

In various implementations of the invention, the first electronic designautomation process is a mask data correction process. With furtherimplementations, the first electronic design automation process is amask data correction process, which adjusts sections of the mask databased upon a rule deck, such as, for example an SVRF rule deck. In stillfurther implementations, the first electronic design automation processis a mask data correction process, which partitions, and flattens thepartitioned layout design prior to correction. This is often referred toas “section-mode” processing.

As indicated, section-mode processing involves executing an embeddedrule deck, such as, for example an SVRF rule deck, on geographicalsections of a chip. These geographical sections, which are oftenrectangular, have the hierarchy that lies under the geographicalsections flattened to the top level. These flattened sections ofteninclude a buffer region. During section-mode processing, boundaryprocessing may be used to reject inappropriate results in the bufferregion. After which, the geographical section is then passed to the“output channel” of first electronic design automation process, andreceived by the operation 403. Accordingly, with some implementations,the first electronic design automation process output 405 is ageographical section of a mask design. In further implementations, thefirst electronic design automation process output 405 is a hierarchicalgeographic section of a mask design.

Mask Data Preparation Tool

FIG. 5 illustrates a mask data preparation tool 501 that may beimplemented according to various examples of the invention. As can beseen from this figure, the tool 501 includes a mask data correction unit503, a mask data verification unit 505, a mask data fracturing unit 507,and a data flow branching unit 509. In various implementations of theinvention, the mask data correction unit 503 is configured to processand adjust mask data based upon a rule deck. Furthermore, the mask datacorrection unit 503 may be configured to partition and flatten a maskdesign into hierarchical geographic sections prior to processing. Themask data verification unit 505 is configured to verify that thecorrected mask data (i.e. the output from the mask data correction unit)complies with various design rule constraints and that the correctedmask data corresponds to the intended design layout data. The mask datafracturing unit 507 is configured to convert and format the correctedmask data into geometric shapes, such as for example trapezoids,suitable for the intended mask writer.

As can be further seen from FIG. 5, the mask data correction unit 503,the mask data verification unit 505 and the mask data fracturing unit507 are all individually connected to the data flow branching unit 509via the buses 511. The buses 511 provide for the transfer ofgeographical sections, such as, for example via data pipelining methods,between the illustrated units. Furthermore, in various implementations,the buses 511 may provide for the signaling between units. For example,to inform the units 505 or 507 that outputs are available from the unit503.

CONCLUSION

As described above, various implementations of the invention provide forbranching the data-flow in a mask data preparation process. In variousimplementations of the invention, the output stream from a first maskdata processing operation is branched. Subsequently, the branched outputstream may be connected to the input stream of a first independent maskdata preparation operation and a second independent mask datapreparation operation. This provides that the first and the secondindependent mask data preparation operations may operate in parallel.Furthermore, this provides that the first and the second independentmask data preparation operations may operate upon discrete “portions” ofthe data processed by the first mask data preparation operation.

Although certain devices and methods have been described above in termsof the illustrative embodiments, the person of ordinary skill in the artwill recognize that other embodiments, examples, substitutions,modification and alterations are possible. It is intended that thefollowing claims cover such other embodiments, examples, substitutions,modifications and alterations within the spirit and scope of the claims.

1. A computer-implemented method for branching the data-flow in anelectronic design automation process comprising: receiving an outputfrom a first operation in an electronic design automation process;storing the output onto one or more tangible memory storage media; anddirecting the output to a first independent operation and a secondindependent operation in the electronic design automation processsimultaneously.
 2. The computer-implemented method recited in claim 1,wherein: the electronic design automation process is a lithographic maskdata preparation process; the first operation is a mask correctionoperation; the first independent operation is a mask verificationoperation; the second independent operation is a mask fracturingoperation; and the output is geographical sections from a grid-basedlayout design.
 3. The computer-implemented method recited in claim 2,the method act of directing the output to a first independent operationand a second independent operation in the electronic design automationprocess simultaneously comprising directing the output to a first outputchannel and a second output channel.
 4. The computer-implemented methodrecited in claim 1, further comprising: receiving a first independentoutput from the first independent operation; and saving the firstindependent output onto one or more tangible memory storage media. 5.The computer-implemented method recited in claim 1, further comprising:receiving a second independent output from the second independentoperation; and saving the second independent output onto one or moretangible memory storage media.
 6. The computer-implemented methodrecited in claim 1, wherein the output is cells from a hierarchicallayout design.
 7. A computer-implemented method for branching thedata-flow in a mask data preparation process comprising: identifying anoutput stream corresponding to a mask process correction operation; anddirecting the output stream to a first output channel and a secondoutput channel.
 8. The computer-implemented method recited in claim 7,wherein the output stream includes one or more of a plurality ofmodified sections of a mask design.
 9. The computer-implemented methodrecited in claim 8, the method act of directing the output stream to afirst output channel and second output channel comprises: routing thefirst output channel to an input channel corresponding to a maskfracturing operation; and routing the second output channel to an inputchannel corresponding to a mask correction verification operation. 10.The computer-implemented method recited in claim 9, further comprisinginstantiating a communication channel between the mask processcorrection operation and the mask correction verification operation. 11.The computer-implemented method recited in claim 10, wherein the maskprocess correction operation comprises: partitioning the mask designinto the plurality of sections; flattening the plurality of sectionsinto a plurality of top level sections based upon hierarchy; makingadjustments to ones of the plurality of top level sections based upon amask process correction rule deck; and outputting the adjusted ones ofthe plurality of top level sections to the output stream.
 12. Thecomputer-implemented method recited in claim 11, wherein the maskprocess correction operation further comprises saving the adjusted onesof the plurality of top level sections to one or more memory storagemedia.
 13. One or more tangible computer-readable media, having computerexecutable instructions for branching the data-flow in a mask datapreparation process stored thereon, the computer executable instructionscomprise: causing a computer to perform a set of operations; and whereinthe set of operations include: identifying an output streamcorresponding to a mask process correction operation; and directing theoutput stream to a first output channel and a second output channel. 14.The one or more tangible computer-readable media recited in claim 13,wherein the output stream includes one or more of a plurality ofmodified sections of a mask design.
 15. The one or more tangiblecomputer-readable media recited in claim 14, the operation for directingthe output stream to a first output channel and second output channelcomprising: routing the first output channel to an input channelcorresponding to a mask fracturing operation; and routing the secondoutput channel to an input channel corresponding to a mask correctionverification operation.
 16. The one or more tangible computer-readablemedia recited in claim 15, the set of operations further comprisinginstantiating a communication channel between the mask processcorrection operation and the mask correction verification operation. 17.The one or more tangible computer-readable media recited in claim 16,wherein the mask process correction operation comprises: partitioningthe mask design into the plurality of sections; flattening the pluralityof sections into a plurality of top level sections based upon hierarchy;making adjustments to ones of the plurality of top level sections basedupon a mask process correction rule deck; and outputting the adjustedones of the plurality of top level sections to the output stream. 18.The one or more tangible computer-readable media recited in claim 16,wherein the mask process correction operation further comprises savingthe adjusted ones of the plurality of top level sections to one or morememory storage media.